package com.manager.system.service;

import com.manager.common.vo.PageVO;
import com.manager.model.System_Permission;
import com.manager.model.System_User;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.util.List;
import java.util.Map;

public interface PermissionService {


    public void updatePermissionStatus(System_Permission model);

    /**
     * 获取所有权限数据
     * @param model
     * @return
     */
    public PageVO getAllPermission(System_Permission model);

    /**
     * 获取权限tree数据
     * @param table_id
     * @param type
     * @return
     */
    public JSONArray getPermissionJsonData(String type, String table_id);

    /**
     * TODO 添加权限数据
     * @param model
     */
    public void addPermission(System_Permission model);

    /**
     * 修改权限
     * @param model
     */
    public void updatePermission(System_Permission model);

    /**
     * 获取用户权限数据
     * @param user
     * @return
     */
    public JSONObject getUserMenuJsonArr(System_User user);

    /**
     * 获取所有权限数据
     * @return
     */
    public JSONObject getAdminMenuJsonArr();

    /**
     * 获取所有btn数据
     * @return
     */
    public JSONArray getAdminBtnJsonArr();

    /**
     * 根据权限ids获取tree数据
     * @param perms  需要选中的id
     * @return
     */
    public JSONArray getPermissionTreeData(String perms);

    /**
     * 获取权限toolTip数据
     * @param perms 权限ids
     * @return
     */
    public String getPermToolTipData(String perms);
    /**
     * TODO 根据表单的英文名字查找,用于删除表单的同时删除表单对应的数据
     * @param enName
     * @return
     */
    public System_Permission getPermissByEnName(String enName);

    /**
     * TODO 删除权限数据
     * @param model
     */
    public void deletePermission(System_Permission model);

    public List<System_Permission> getAllPermission();
}
